# 购票，一个用户购票的记录使用一个文件存储，判断这个用户是否是新用户；不仅可以订票，还可以查看历史记录。
import os.path
import time
from datetime import datetime

# 定义一个全局变量
# 获取当前程序文件所在的父级目录
PARENT_PATH = os.path.dirname(os.path.abspath(__file__))
USERS_PATH = os.path.join(PARENT_PATH, 'data', 'book_users')

def book(user_path):
    cinema_name = input("请输入您要去的电影院：")
    movie_name = input("请输入您要看到电影名称：")
    tickets = input("请输入您要购买的票数：")
    # 时间
    d = datetime.now().strftime('%Y-%m-%d %H:%M:%S')

    # 若flag为False，表示该用户的文件不存在，我们需要创建该用户的文件
    if not os.path.exists(user_path):
        f = open(user_path,'w',encoding='UTF-8')
        f.close()

    with open(user_path,'a',encoding='UTF-8') as f:
        f.write(f"{cinema_name}|{movie_name}|{tickets}|{d}\n")
        f.flush()

    time.sleep(3)
    print("购票成功！")


def history(user_path):
    if os.path.exists(user_path):
        print("购买记录如下：".center(50, '*'))
        with open(user_path, 'r', encoding='UTF-8') as f:
            text1 = f.read()
            print(text1)
    else:
        print("您还未购买过任何电影票！！暂未历史记录")



def init():
    # 判断用户订票的父级目录是否存在
    if not os.path.exists(USERS_PATH):
        os.makedirs(USERS_PATH)  # 创建多级目录

    name = input("请输入您的用户名：")
    pwd = input("请输入您密码：")

    # 判断该用户是否有购买记录
    user_path = os.path.join(USERS_PATH, f"{name}.txt")

    # TODO:这里应该判断的时候是否是新用户

    choice_dict = {
        '1': book,
        '2': history
    }

    while True:
        print('菜单'.center(50, '-'))
        print("1.开始购票     2.查看历史订单")
        print('-' * 100)
        choice = input("请输入您的选择：")
        if choice.upper()=='Q':
            print("欢迎下次光临！")
            break

        if '1' == choice or '2' == choice:
            choice_dict[choice](user_path)
        else:
            print("没有您的选项！请重新选择！")

if __name__ == '__main__':
    init()
